package com.letoo.sso.client;

import java.util.HashMap;
import java.util.Map;

import com.alibaba.fastjson.JSON;
import com.letoo.sso.client.domain.Result;
import com.letoo.sso.client.utils.MyHttpclientUtils;

public class Auth {

    /**
     * 提供给其他系统进行外部接口token校验的接口。该接口请求的是sso系统的API校验和touchToken内部接口。
     *
     * @param userId
     *            用户ID
     * @param token
     *            用户token
     * @param uri
     *            业务接口的uri。不包含域地址，只包含业务地址。
     * @param sign
     *            客户端请求的sign
     * @return 返回结果。true表示校验通过，false表示校验失败。
     */
    public static boolean validateToken(final String authUrl, final long userId, final String token, final String uri, final String sign) {
        Map<String, String> params = new HashMap<String, String>();
        params.put("userId", String.valueOf(userId));
        params.put("token", token.trim());
        params.put("uri", uri.trim());
        params.put("sign", sign.trim());
        String res = null;
        Result result = null;
        try {
            res = MyHttpclientUtils.doPost(authUrl, params, 10000, 10000);
            result = (Result) JSON.parseObject(res, Result.class);
            if (result == null || !result.isSuccess()) {
                return false;
            } else {
                return true;
            }
        } catch (Exception e) {
            System.out.println("validateToken connect timeout!!!");
        } finally {
            params.clear();
            params = null;
        }
        return false;
    }

}
